home *** CD-ROM | disk | FTP | other *** search
/ Komputer for Alle 2003 Ekstra 100 Spil / K-CD_2003_Ekstra_100_Spil.iso / Board / 4free / 4free.exe / {app} / Engines / Velena / Readme.txt < prev    next >
Text File  |  2002-01-29  |  20KB  |  564 lines

  1.  
  2.  
  3.                  -+- Velena -+-
  4.  
  5. A Connect 4 Expert System which Plays Perfectly
  6. ================================================
  7.  
  8.  
  9.  
  10.                    Abstract
  11.                    ========
  12.  
  13. Velena is a Shannon-C type engine written to play 
  14. Connect Four. It's based on a knowledged approach that 
  15. uses eight mathematical rules to take its decisions. 
  16. Since the rules are proven to be correct, the 
  17. conclusions made by the engine are also correct. In 
  18. this way it has been possible to show that Connect Four 
  19. is a first player win and Velena is always able to win 
  20. when she plays first.
  21.  
  22. ==================================================
  23.  
  24.  
  25. 1. Overview
  26. ===================
  27.  
  28.     1.1. Freeware agreement
  29.     =======================
  30.  
  31.     This engine is to be considered freeware, which 
  32.     means that you can use and distribute it to anyone 
  33.     you want, provided no fee is charged. You should 
  34.     also not disassemble modify or reverse engineer 
  35.     the engine for any reason in any circumstance.
  36.  
  37.          The author's current address is:
  38.                          Giuliano Bertoletti
  39.                          Via Bocchialini n.6
  40.                          Cap. 43100, Parma. 
  41.                          Italy
  42.  
  43.                          E-Mail: gbe32241@libero.it
  44.                          Fidonet: 2:332/801.6
  45.  
  46.  
  47.  
  48.     1.2. Greetings
  49.     ==============
  50.  
  51.     The Velena engine is based on the knowledged
  52.     approach of L.Victor Allis who designed and
  53.     implmented a sophisticated AI engine in a 
  54.     program called Victor. Velena uses the same
  55.     strategy, except that even newer concepts and
  56.     techinques were introduced in order to reduce 
  57.     the problem complexity (of solving the game) 
  58.     to a more tractable factor of magnitude.
  59.  
  60.     I also thank Filippo Ghilardi who helped me to
  61.     build the opening book data base which took
  62.     several days of work on his Pentium 133 computer.
  63.  
  64.  
  65. 2. Introduction into Connect Four
  66. =================================
  67.  
  68. Now I'll describe the rules of the game as well as
  69. some nomenclature used throughout this manual and
  70. some basic connect four strategy.
  71.  
  72.  
  73.     2.1. Game Rules
  74.     ===============
  75.  
  76.     Connect Four is a two players game which takes
  77.     place on a 7x6 rectangular board placed vertically
  78.     between them. One player has 21 'white' men and
  79.     the other 21 'black' men. Each player can drop
  80.     a man at the top of the board in one of the seven
  81.     columns; the man falls down and fills the lower
  82.     unoccupied square. Of course a player cannot drop
  83.     a man in a certain column if it's already full
  84.     (i.e. it already contains six men).
  85.  
  86.     Even if there's no rule about which color should
  87.     play first, in order to avoid confusion we will
  88.     assume, as in chess, 'white' always plays first.
  89.  
  90.     Note however that 4Free displays men in
  91.     non-white/black colors even if refered here as
  92.     white and black respectively. Therefore when
  93.     playing with 4Free, we call 'white' the color of
  94.     the player who plays first.
  95.  
  96.     The object of the game is to connect four men
  97.     vertically, horizontally or diagonally. If the
  98.     board is filled and no one has alligned four men
  99.     then the game is drawn (that is after 42 moves if
  100.     no one wins).
  101.  
  102.     Here's an example of a game won by white (O) and
  103.     black (X) in fig.1 and fig.2 respectively. A
  104.     possible draw is represented in fig.3
  105.  
  106.  
  107.       .......          .......           oooxooo
  108.       .......          .......           xxxoxxx
  109.       .......          .xo....           oooxooo
  110.       ...x...          .xxo...           xxxoxxx
  111.       ...x...          .oox...           oooxooo
  112.       xoooo..          .oxox..           xxxoxxx
  113.  
  114.        Fig.1            Fig.2             Fig.3
  115.    White (O) wins   Black (X) wins   The Game is drawn
  116.  
  117.  
  118.     2.2. Nomenclature
  119.     =================
  120.  
  121.     Since we need a way for representing a sequence
  122.     of moves instead of a position, I will use the
  123.     same nomenclature as the one used for chess. This
  124.     means that columns are named from A to G, starting
  125.     from left, and rows are numbered from 1 to 6
  126.     starting from the bottom. In this way we could
  127.     represent each square of the board with a pair
  128.     letter-number. For example the square in the
  129.     middle of the lowest row is d1. The square above
  130.     is d2 and the square on the left of d1 is c1.
  131.     (see fig. 3)
  132.  
  133.                6 . . . . . . .
  134.                5 . . . . . . .
  135.                4 . . . . . . .
  136.                3 . . . . . . .
  137.                2 . . . . . . .
  138.                1 . . . . . . .
  139.                  A B C D E F G
  140.  
  141.                     Fig. 3
  142.  
  143.  
  144.     In this way we could write down a game as a
  145.     sequence of moves. For example the endgame of
  146.     fig.1 could have arisen from the following
  147.     sequence of moves:
  148.  
  149.         1) d1,d2
  150.         2) c1,d3
  151.         3) b1,a1
  152.         4) e1++
  153.  
  154.     where ++ indicates the player who did that move
  155.     won the game (as in chess).
  156.  
  157.  
  158.     2.3. Game Strategy
  159.     ==================
  160.  
  161.     There are two kinds of strategies in connect four.
  162.     The first consist in looking ahead few moves to
  163.     avoid the opponent to win and in the same time
  164.     trying to connect four men. The other is looking
  165.     for a win in the long run.
  166.  
  167.     Virtually all the algorithms I have seen tend to
  168.     implement the first strategy with some variants of
  169.     alpha beta search and the most sophisticated ones
  170.     with tree branch pruning. These strategies assure
  171.     more or less the unvulnerability in the short run,
  172.     but they are doomed to fail in the long run
  173.     because they cannot see beyond the horizzon of few
  174.     plies.
  175.  
  176.     Most of the games ends between 35th and 42nd move
  177.     when you (or the opponent) are forced to make a
  178.     particular move since there's only one column
  179.     available. In this circumstance most of the people
  180.     believe that the winner is lucky (if there's one).
  181.     That's not it. An expert player is able to make
  182.     this happen much time before. Actually this is
  183.     what Velena does.
  184.  
  185.     The first step consist in noting that after white
  186.     has moved, an odd number of free squares remains
  187.     on the board. Similary after black has moved an
  188.     even number of free square remains. When there's
  189.     only one column available it's clear that the last
  190.     square will be occupied by black (if no one wins
  191.     first).
  192.  
  193.     Now let introduce some definitions before
  194.     continuing:
  195.  
  196.     --------------------------------------------------
  197.  
  198.     ODD SQUARE: it's a square belonging to an odd row.
  199.     For example d1,c1,c3, f5 are all odd squares.
  200.  
  201.     EVEN SQUARE: same as above except that the row is
  202.     even. For example a2, b4,c6,e2 are all even
  203.     squares.
  204.  
  205.     GROUP: it's a set of four squares connected
  206.     horizzontally, vertically or diagonally. The first
  207.     player who fills a group with his men, wins.
  208.  
  209.     THREAT: it's a group filled with three men of the
  210.     same color which has the fourth square empty, and
  211.     also the square below the empty square is
  212.     empty.
  213.  
  214.     ODD THREAT: it's a therat in a group whose empty
  215.     square is odd.
  216.  
  217.     EVEN THREAT: same as above but the empty square
  218.     is even.
  219.  
  220.     DOUBLE THREAT: they are two groups which share an
  221.     empty odd square; each group is filled with only
  222.     two men (of the same color) and the other two
  223.     squares (one for each group) are empty and are one
  224.     above the other. The square below the shared
  225.     square must be empty too.
  226.  
  227.     --------------------------------------------------
  228.  
  229.     It's then clear that if white has an odd threat
  230.     and black cannot connect four men anywhere, the
  231.     game will be eventually won by white.
  232.  
  233.     Please note that this is a sufficient condition
  234.     and if black can connect four men somewhere,
  235.     further knowledge is required.
  236.  
  237.     Similary if black has an even threat and white
  238.     cannot connect four men the game will be
  239.     eventually won by black.
  240.  
  241.     It's clear that in both cases we assume that
  242.     players make the best move available.
  243.  
  244.     Things get more complex when both players have at
  245.     least one group in which they can connect four
  246.     men. In this case we need further investigation.
  247.  
  248.     If white has an odd threat and black has an even
  249.     threat and the columns in which the threats are
  250.     (i.e. the empty square) are different then white
  251.     can still win. Of course no player must be able to
  252.     connect four men except in the group in which he
  253.     has the odd/even threat stated above.
  254.  
  255.     But if columns are the same then the lower threat
  256.     (i.e. the lower empty square) wins.
  257.  
  258.     If both players have an odd threat the game will
  259.     be drawn. Unless one of them can connect four men
  260.     elsewhere.
  261.  
  262.     Then the strategy for white is to try to obtain an
  263.     odd threat and for black an even threat. This is
  264.     not always sufficient as the restrictions above
  265.     shows but it's a good starting point to play
  266.     connect four, especially when both players are
  267.     humans.
  268.  
  269.  
  270.     2.4. The Way Velena Plays
  271.     =========================
  272.  
  273.     When set to her strongest level, Velena uses two
  274.     different strategies according she's playing white
  275.     or black. In both cases she uses a database for
  276.     the opening lines. The database is made in such a
  277.     way that Velena is always able to reach a position
  278.     in which she has an odd threat when she plays white
  279.     (and from there she's able to continue and win by
  280.     herself). She tries to follow the longest winning
  281.     line for white when she plays with black. The built
  282.     in evaluation function which examines the positions
  283.     is then sufficient to play the middle and end game.
  284.     However, further search is done just to check for
  285.     trivial wins few moves ahead.
  286.  
  287.  
  288.     2.5. Drawbacks of the algorithm
  289.     ===============================
  290.  
  291.     Connect Four is not complex like chess. Therefore
  292.     moves tends to repeat many times. For example the
  293.     winning line for white is very narrow, so narrow
  294.     that the first seven moves for white are forced.
  295.     This is the reason why Velena is forced to answer
  296.     almost always in the same way, given the same
  297.     position on the board. There are not many
  298.     variants.
  299.  
  300.     It's not strange that a player who keeps white men
  301.     and learns how to win a game, is then always able
  302.     to win each time he plays. This because he can
  303.     play the same game each time.
  304.  
  305.     Another drawback is that Velena pays very poor
  306.     attention to distinguish between a win for black
  307.     and a draw. They are almost the same thing for
  308.     her.
  309.  
  310.     Also note that Velena does the best move (when
  311.     playing with white) only when she starts from the
  312.     empty board. If someone sets up a position and
  313.     then tells the computer to continue the game from
  314.     that point, it's not warranted that the computer
  315.     plays at best.
  316.  
  317.     Finally the algorithm tend to resign when a game
  318.     is compromised and doesn't fight until the end.
  319.  
  320. 3. Why Velena is so special
  321. ===========================
  322.  
  323. As already said before, Velena is an expert system
  324. able to play the game perfectly. This means that if
  325. the engine is set to it's maximum level of strength
  326. she always wins when she plays first and she is almost
  327. impossible to beat when she plays second (until you
  328. make a few games and you will learn how to beat her by
  329. the engine itself).
  330.  
  331. Of course if you are a beginner you can set a lower
  332. difficulty level for the computer. This is useful if
  333. you are interested in learning how to play.
  334.  
  335.  
  336.     3.1. Game complexity
  337.     ====================
  338.  
  339.     Although at first sight Connect Four doesn't seem
  340.     a very complex game in terms of combinations of
  341.     moves and the number of reachable different
  342.     positions on the board, it should be noticed that
  343.     it's not a so trivial game as it looks. Let's see
  344.     some mathematics behind it.
  345.  
  346.     First we can make a raw estimation of game
  347.     complexity noting that since each square can be
  348.     empty or occupied by either white or black, each
  349.     square can be in only three different states,
  350.     leading a total game complexity of 3^42 which is
  351.     in the order of 10^20. Of course this is an upper
  352.     bound which takes in count also the illegal
  353.     positions.
  354.  
  355.     It is possible to make some finer estimations that
  356.     reduces the number of legal positions, anyway even
  357.     the finest estimation gives us an order of
  358.     magnitude of 7.1 x 10^13, which is still to high
  359.     for a complete enumeration. To build up a brute
  360.     force attack several terabytes of disk space would
  361.     be required, and current technology is far away
  362.     from this possibility. Besides the space
  363.     requirements, also the time requirements would be
  364.     out of what are called "reasonable resources".
  365.     Finally it would be almost impossible to distribute
  366.     the engine.
  367.  
  368.  
  369.     3.2. So Velena is not a brute force attack?
  370.     ==================================================
  371.  
  372.     Definitly not. Velena is an intelligent engine
  373.     which is able to predict the final result of a game
  374.     using complex mathematics, and efficient search
  375.     strategies. The engine is compact and strong; only
  376.     a tiny opening book of about 60.000 positions is
  377.     used for the opening lines. All the rest is
  378.     calculated on fly.
  379.  
  380.  
  381.     3.3. Why should I use Velena if it's unbeatible?
  382.     ==================================================
  383.  
  384.     Well, there are several reasons why this engine
  385.     can be useful. First it represents the final word
  386.     on Connect 4 (or so I hope): no program or living
  387.     man can outperform Velena.
  388.  
  389.     Besides, Velena is very useful to train yourself
  390.     against a human player. If you want to become a
  391.     strong player then you should train yourself with
  392.     a strong player. And Velena is the strongest.
  393.  
  394.  
  395.     3.4. But is Velena really so perfect?
  396.     =====================================
  397.  
  398.     Well, it's perfect in the sense that she's always
  399.     able to win if she plays first. This because it can
  400.     be mathematically shown that Connect Four can be
  401.     won by the player which plays first (if it plays
  402.     well) no matter how good the opponent is.
  403.  
  404.     Of course if Velena plays second, there's still a
  405.     chance for the human player to defeat her. Once you
  406.     learned how, you can easiliy win. More over the
  407.     purpose of the computer in this case (when playing
  408.     second) is not to win, but to avoid losing, if
  409.     possible. In other words Velena considers a draw a
  410.     good result if it plays with red men.
  411.  
  412.  
  413.     3.5. So Velena destroyed Connect Four?
  414.     ======================================
  415.  
  416.     Yes, but humans are humans and machines are
  417.     machines. Connect Four is still interesting if
  418.     played between two men. Of course there are no
  419.     chances between a man and a computer, like there
  420.     are no chances between a man and a car. The latter
  421.     will run always faster.
  422.  
  423.  
  424.     3.6. Why does Velena play almost always the same
  425.     game when she's in autoplay?
  426.     ==================================================
  427.  
  428.     Connect four is not like chess. Even if the game
  429.     is not as trivial as tic tac toe, the complexity
  430.     is much smaller than chess. This of course leads
  431.     to a limited number of variants and often the moves
  432.     are forced. For example there's only one winning
  433.     way for white and the first seven moves are forced
  434.     for him. If he choses another move, black can draw.
  435.     Similary black has only one strong defensive line
  436.     (which of course fails in the long run) which can
  437.     protect him from a premature loss. It's clear that
  438.     once you learn how to infiltrate in this line,
  439.     you are likely to win each time against black.
  440.  
  441.  
  442.     3.7. Where can I find the complete description of
  443.     the algorithms used here?
  444.     ==================================================
  445.  
  446.     You can try:
  447.  
  448.     ftp://ftp.cs.vu.nl/~victor/connect4.zip
  449.     ftp://ftp.cs.vu.nl/~victor/thesis.zip
  450.  
  451.     this is the documentation made available by
  452.     L.Victor Allis and surely it's very interesting.
  453.     Of course I am not sure that it will be there
  454.     forever. Please contact victor@cs.vu.nl for more
  455.     information.
  456.  
  457.     Keep also in mind that this engine is based on his
  458.     theory but it does not follow it completely. For
  459.     example the mathematical rules have been reduced
  460.     from nine to eight.
  461.  
  462.     You can also refer to Velena Home Page at:
  463.     http://www.ce.unipr.it/~gbe/velena.html
  464.  
  465.  
  466.     3.8. Where can I get the last version of the
  467.     Original Velena program?
  468.     ===============================================
  469.  
  470.     Check out Velena's Home Page at:
  471.  
  472.     http://www.ce.unipr.it/~gbe/velena.html
  473.     or use a net serach engine.
  474.  
  475.  
  476.     3.9. Is the source code of Velena available to
  477.     the public?
  478.     ==================================================
  479.  
  480.     No, at the moment it's not. Maybe one day it will.
  481.  
  482.  
  483.     3.10. Who's F.Alinovi and why did he say:
  484.     "...who wants to make four?"
  485.     ==================================================
  486.  
  487.     He's a friend. After I bored him telling the inner
  488.     workings of Velena and the clever idea behind the
  489.     algorithm he answered that way. He also added that
  490.     I was losing my time. Poor little fellow! :))))
  491.  
  492.  
  493.     3.11. What's "a Shannon-C type program" mean?
  494.     =============================================
  495.  
  496.     In his famous paper in 1950 C.Shannon describes
  497.     three methods by which a machine could play a
  498.     strategy game (such chess, checkers, connect four
  499.     and so on...). The C-type method consist in
  500.     emulating human mind to take decisions. In other
  501.     words the eight mathematical rules Velena uses are
  502.     not based on a search algorithm but on the
  503.     properties of the game. The A-type method instead
  504.     is based on pure brute force search. Just to be
  505.     fair Velena is not only a Shannon-C type engine
  506.     since it also uses some search algoritms to play,
  507.     anyway the great difference in playing capabilities
  508.     relies just on this knowledged approach, which
  509.     made possible to solve the game.
  510.  
  511.  
  512.     3.12 Why isn't there the possibility to change the
  513.     board size?
  514.     ==================================================
  515.  
  516.     I think the standard 7x6 board is enough. Other
  517.     sizes are not very interesting. For example it can
  518.     easily be shown that black can draw on any (2n)x6
  519.     board. Here's the 6x6 board algorithm black can
  520.     use to draw any game.
  521.  
  522.     step 1: if white plays column A,B,E or F, you play
  523.             follow up (the same column).
  524.  
  525.     step 2: when white plays column C or D for the
  526.             first time you answer in the other column.
  527.  
  528.     step 3: if white plays column C or D again you
  529.             answer in the same column until the column
  530.             is full. If you cannot answer that way
  531.             because the column is full, then you play
  532.             the other column.
  533.  
  534.     If black follows these three steps, the game can
  535.     be drawn, no matter what white does.
  536.  
  537.  
  538.     3.13 Why did you call her Velena?
  539.     =================================
  540.  
  541.     I don't know, I simply liked the name. However
  542.     it's very similar to "Veleno" which in italian
  543.     means "poison". The intro logo from the original
  544.     game recalls this sensation too. I have nothing
  545.     else to say about it. :-(((
  546.  
  547.  
  548.  
  549. ======================================================
  550.  
  551.     Further details will be given if requested. Please
  552.     write in english or in italian.
  553.  
  554. ======================================================
  555.  
  556.                                 The author:
  557.                                 Giuliano Bertoletti
  558.                                 Via Bocchialini n.6
  559.                                 Cap. 43100 Parma
  560.                                 gbe32241@libero.it
  561.  
  562.  
  563.  
  564.